package com.zhang.family_doctor.mapper;

import com.zhang.family_doctor.dto.TeamDto;
import com.zhang.family_doctor.entity.Team;
import com.zhang.family_doctor.vo.DoctorTeamVO;
import com.zhang.family_doctor.vo.TeamVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface TeamMapper {

    /**
     * 新增医生团队
     * @param teamDto
     */
    void save(TeamDto teamDto);

    /**
     * 编辑团队
     * @param team
     */
    void updateTeam(Team team);

    /**
     * 启用或禁用团队
     * @param team
     */
    void enableOrDisable(Team team);

    /**
     * 解散团队
     * @param id
     */
    void delete(Integer id);

    /**
     * 分页查询团队
     * @param doctorId
     * @return
     */
    List<TeamVO> getTeam(@Param("doctorId") Integer doctorId,@Param("mechanismId") Integer mechanismId ,@Param("teamName") String teamName);

    /**
     * 分页查询我加入的团队  排除团队长
     * @param doctorId
     * @return
     */
    List<TeamVO> getTeamJoined(@Param("doctorId") Integer doctorId,@Param("mechanismId") Integer mechanismId ,@Param("teamName") String teamName);

    /**
     * 根据id查询团队
     * @param id
     * @return
     */
    Team selectTeamById(Integer id);

    /**
     * 查询机构名和团队名
     * @param doctorId
     * @return
     */
    List<DoctorTeamVO> selectDoctorTeamVO(Integer doctorId);

    /**
     * 根据机构id查询团团队
     * @param mechanismId
     * @return
     */
    List<Team> getTeamByMechanismId(Integer mechanismId);
}